home *** CD-ROM | disk | FTP | other *** search
- <?php
- // +----------------------------------------------------------------------+
- // | PHP Version 4 |
- // +----------------------------------------------------------------------+
- // | Copyright (c) 1998-2004 Manuel Lemos, Tomas V.V.Cox, |
- // | Stig. S. Bakken, Lukas Smith |
- // | All rights reserved. |
- // +----------------------------------------------------------------------+
- // | MDB is a merge of PEAR DB and Metabases that provides a unified DB |
- // | API as well as database abstraction for PHP applications. |
- // | This LICENSE is in the BSD license style. |
- // | |
- // | Redistribution and use in source and binary forms, with or without |
- // | modification, are permitted provided that the following conditions |
- // | are met: |
- // | |
- // | Redistributions of source code must retain the above copyright |
- // | notice, this list of conditions and the following disclaimer. |
- // | |
- // | Redistributions in binary form must reproduce the above copyright |
- // | notice, this list of conditions and the following disclaimer in the |
- // | documentation and/or other materials provided with the distribution. |
- // | |
- // | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken, |
- // | Lukas Smith nor the names of his contributors may be used to endorse |
- // | or promote products derived from this software without specific prior|
- // | written permission. |
- // | |
- // | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
- // | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
- // | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
- // | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
- // | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
- // | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
- // | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
- // | OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
- // | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
- // | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
- // | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
- // | POSSIBILITY OF SUCH DAMAGE. |
- // +----------------------------------------------------------------------+
- // | Author: Lukas Smith <smith@backendmedia.com> |
- // +----------------------------------------------------------------------+
- //
- // $Id: metabase_wrapper.php,v 1.50.4.1 2004/01/08 13:43:02 lsmith Exp $
- //
-
- MDB::loadFile('Date');
-
- /**
- * Wrapper that makes MDB behave like Metabase
- *
- * @package MDB
- * @category Database
- * @author Lukas Smith <smith@backendmedia.com>
- */
-
- $lob_error = '';
-
- function MetabaseSetupDatabase($arguments, &$database)
- {
- _convertArguments($arguments, $dsninfo, $options);
- $db =& MDB::connect($dsninfo, $options);
-
- if (MDB::isError($db) || !is_object($db)) {
- $database = 0;
- return($db->getMessage());
- }
- $database = $db->database;
- return('');
- }
-
- function MetabaseSetupDatabaseObject($arguments, &$db)
- {
- _convertArguments($arguments, $dsninfo, $options);
- $db =& MDB::connect($dsninfo, $options);
-
- if (MDB::isError($db) || !is_object($db)) {
- return($db->getMessage());
- }
- return('');
- }
-
- function _convertArguments($arguments, &$dsninfo, &$options)
- {
- if (isset($arguments['Type'])) {
- $dsninfo['phptype'] = $arguments['Type'];
- }
- if (isset($arguments['User'])) {
- $dsninfo['username'] = $arguments['User'];
- }
- if(isset($arguments['Password'])) {
- $dsninfo['password'] = $arguments['Password'];
- }
- if(isset($arguments['Host'])) {
- $dsninfo['hostspec'] = $arguments['Host'];
- }
- if(isset($arguments['Options']['Port'])) {
- $dsninfo['port'] = $arguments['Options']['Port'];
- unset($arguments['Options']['Port']);
- }
-
- if (isset($arguments['Persistent'])) {
- $options['persistent'] = TRUE;
- }
- if(isset($arguments['Debug'])) {
- $options['debug'] = $arguments['Debug'];
- }
- if(isset($arguments['DecimalPlaces'])) {
- $options['decimal_places'] = $arguments['DecimalPlaces'];
- }
- if(isset($arguments['LOBBufferLength'])) {
- $options['LOBbufferlength'] = $arguments['LOBBufferLength'];
- }
- if(isset($arguments['LogLineBreak'])) {
- $options['loglinebreak'] = $arguments['LogLineBreak'];
- }
-
- $options['seqname_format'] = '_sequence_%s';
- if(isset($arguments['Options']) && is_array($arguments['Options'])) {
- $options = array_merge($options, $arguments['Options']);
- }
- }
-
- function MetabaseCloseSetup($database)
- {
- global $_MDB_databases;
-
- $_MDB_databases[$database]->disconnect();
- unset($_MDB_databases[$database]);
- }
-
- function MetabaseQuery($database, $query)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->query($query);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('Query', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseQueryField($database, $query, &$field, $type = 'text')
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->queryOne($query, $type);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QueryField', $result->getMessage());
- return(0);
- } else {
- $field = $result;
- return(1);
- }
- }
-
- function MetabaseQueryRow($database, $query, &$row, $types = '')
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->queryRow($query, $types);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QueryRow', $result->getMessage());
- return(0);
- } else {
- $row = $result;
- return(1);
- }
- }
-
- function MetabaseQueryColumn($database, $query, &$column, $type = 'text')
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->queryCol($query, $type);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QueryColumn', $result->getMessage());
- return(0);
- } else {
- $column = $result;
- return(1);
- }
- }
-
- function MetabaseQueryAll($database, $query, &$all, $types = '')
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->queryAll($query, $types);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QueryAll', $result->getMessage());
- return(0);
- } else {
- $all = $result;
- return(1);
- }
- }
-
- function MetabaseReplace($database, $table, &$fields)
- {
- global $_MDB_databases;
- for($count = count($fields), reset($fields), $field = 0;
- $field < $count;
- next($fields), $field++)
- {
- $name = key($fields);
- if(!isset($fields[$name]['Type'])) {
- $fields[$name]['Type'] = 'text';
- }
- }
- $result = $_MDB_databases[$database]->replace($table, $fields);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('Replace', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabasePrepareQuery($database, $query)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->prepareQuery($query);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('PrepareQuery', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFreePreparedQuery($database, $prepared_query)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->freePreparedQuery($prepared_query);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FreePreparedQuery', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseExecuteQuery($database, $prepared_query)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->executeQuery($prepared_query);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('ExecuteQuery', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseQuerySet($database, $prepared_query, $parameter, $type, $value, $is_null = 0, $field = '')
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParam($prepared_query, $parameter, $type, $value, $is_null, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySet', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetNull($database, $prepared_query, $parameter, $type)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamNull($prepared_query, $parameter, $type);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetNull', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetText($database, $prepared_query, $parameter, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamText($prepared_query, $parameter, $value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetText', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetCLOB($database, $prepared_query, $parameter, $value, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamClob($prepared_query, $parameter, $value, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetCLOB', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetBLOB($database, $prepared_query, $parameter, $value, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamBlob($prepared_query, $parameter, $value, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetBLOB', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetInteger($database, $prepared_query, $parameter, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamInteger($prepared_query, $parameter, $value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetInteger', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetBoolean($database, $prepared_query, $parameter, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamBoolean($prepared_query, $parameter, $value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetBoolean', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetDate($database, $prepared_query, $parameter, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamDate($prepared_query, $parameter, $value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetDate(', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetTimestamp($database, $prepared_query, $parameter, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamTimestamp($prepared_query, $parameter, $value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetTimestamp', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetTime($database, $prepared_query, $parameter, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamTime($prepared_query, $parameter, $value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetTime', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetFloat($database, $prepared_query, $parameter, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamFloat($prepared_query, $parameter, $value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetFloat', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseQuerySetDecimal($database, $prepared_query, $parameter, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setParamDecimal($prepared_query, $parameter, $value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('QuerySetDecimal', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseAffectedRows($database, &$affected_rows)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->affectedRows();
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('AffectedRows', $result->getMessage());
- return(0);
- } else {
- $affected_rows = $result;
- return(1);
- }
- }
-
- function MetabaseFetchResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetch($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchCLOBResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchClob($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchCLOBResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchBLOBResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchBlob($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchBLOBResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseDestroyResultLOB($database, $lob)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->_destroyResultLob($lob);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('DestroyResultLOB', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseEndOfResultLOB($database, $lob)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->endOfResultLob($lob);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('EndOfResultLOB', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseReadResultLOB($database, $lob, &$data, $length)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->_readResultLob($lob, $data, $length);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('ReadResultLOB', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseResultIsNull($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->resultIsNull($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('ResultIsNull', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchDateResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchDate($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchDateResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchTimestampResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchTimestamp($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchTimestampResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchTimeResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchTime($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchTimeResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchBooleanResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchBoolean($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchBooleanResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchFloatResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchFloat($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchFloatResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchDecimalResult($database, $result, $row, $field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchDecimal($result, $row, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchDecimalResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseFetchResultField($database, $result, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchOne($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchResultField', $result->getMessage());
- return(0);
- } else {
- $field = $result;
- return(1);
- }
- }
-
- function MetabaseFetchResultArray($database, $result, &$array, $row)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchInto($result, MDB_FETCHMODE_ORDERED, $row);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchResultArray', $result->getMessage());
- return(0);
- } else {
- $array = $result;
- return(1);
- }
- }
-
- function MetabaseFetchResultRow($database, $result, &$row)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchRow($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchResultRow', $result->getMessage());
- return(0);
- } else {
- $row = $result;
- return(1);
- }
- }
-
- function MetabaseFetchResultColumn($database, $result, &$column)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchCol($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchResultColumn', $result->getMessage());
- return(0);
- } else {
- $column = $result;
- return(1);
- }
- }
-
- function MetabaseFetchResultAll($database, $result, &$all)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->fetchAll($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FetchResultAll', $result->getMessage());
- return(0);
- } else {
- $all = $result;
- return(1);
- }
- }
-
- function MetabaseNumberOfRows($database, $result)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->numRows($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('NumberOfRows', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseNumberOfColumns($database, $result)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->numCols($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('NumberOfColumns', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseGetColumnNames($database, $result, &$column_names)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getColumnNames($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetColumnNames', $result->getMessage());
- return(0);
- } else {
- $column_names = $result;
- return(1);
- }
- }
-
- function MetabaseSetResultTypes($database, $result, &$types)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setResultTypes($result, $types);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('SetResultTypes', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseFreeResult($database, $result)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->freeResult($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('FreeResult', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseError($database)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->error();
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('Error', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseSetErrorHandler($database, $function)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setErrorHandler($function);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('SetErrorHandler', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseCreateDatabase($database, $name)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->createDatabase($name);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('CreateDatabase', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseDropDatabase($database, $name)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->dropDatabase($name);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('DropDatabase', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseSetDatabase($database, $name)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setDatabase($name);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('SetDatabase', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseGetIntegerFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getIntegerDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetIntegerFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetTextFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getTextDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetTextFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetCLOBFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getClobDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetCLOBFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetBLOBFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getBlobDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetBLOBFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetBooleanFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getBooleanDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetBooleanFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetDateFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getDateDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetDateFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetTimestampFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getTimestampDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetTimestampFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetTimeFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getTimeDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetTimeFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetFloatFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getFloatDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetFloatFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetDecimalFieldTypeDeclaration($database, $name, &$field)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getDecimalDeclaration($name, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetDecimalFieldTypeDeclaration', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetTextFieldValue($database, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getTextValue($value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetTextFieldValue', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseGetBooleanFieldValue($database, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getBooleanValue($value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetBooleanFieldValue', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseGetDateFieldValue($database, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getDateValue($value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetDateFieldValue', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseGetTimestampFieldValue($database, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getTimestampValue($value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetTimestampFieldValue', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseGetTimeFieldValue($database, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getTimeValue($value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetTimeFieldValue', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseGetFloatFieldValue($database, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getFloatValue($value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetFloatFieldValue', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseGetDecimalFieldValue($database, $value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getDecimalValue($value);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetDecimalFieldValue', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseSupport($database, $feature)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->support($feature);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('Support', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseCreateTable($database, $name, &$fields)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->createTable($name, $fields);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('CreateTable', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseDropTable($database, $name)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->dropTable($name);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('DropTable', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseAlterTable($database, $name, &$changes, $check = 0)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->alterTable($name, $changes, $check);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('AlterTable', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseListTables($database, &$tables)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->listTables();
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('ListTables', $result->getMessage());
- return(0);
- } else {
- $tables = $result;
- return(1);
- }
- }
-
- function MetabaseListTableFields($database, $table, &$fields)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->listTableFields($table);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('ListTableFields', $result->getMessage());
- return(0);
- } else {
- $fields = $result;
- return(1);
- }
- }
-
- function MetabaseGetTableFieldDefinition($database, $table, $field, &$definition)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getTableFieldDefinition($table, $field);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetTableFieldDefinition', $result->getMessage());
- return(0);
- } else {
- $definition = $result[0];
- return(1);
- }
- }
-
- function MetabaseCreateSequence($database, $name, $start)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->createSequence($name, $start);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('CreateSequence', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseDropSequence($database, $name)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->dropSequence($name);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('DropSequence', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseGetSequenceNextValue($database, $name, &$value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->nextId($name, FALSE);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetSequenceNextValue', $result->getMessage());
- return(0);
- } else {
- $value = $result;
- return(1);
- }
- }
-
- function MetabaseGetSequenceCurrentValue($database, $name, &$value)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->currId($name);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetSequenceCurrentValue', $result->getMessage());
- return(0);
- } else {
- $value = $result;
- return(1);
- }
- }
-
- function MetabaseListSequences($database, &$sequences)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->listSequences();
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('ListSequences', $result->getMessage());
- return(0);
- } else {
- $sequences = $result;
- return(1);
- }
- }
-
- function MetabaseGetSequenceDefinition($database, $sequence, &$definition)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getSequenceDefinition($sequence);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetSequenceDefinition', $result->getMessage());
- return(0);
- } else {
- $definition = $result;
- return(1);
- }
- }
-
- function MetabaseAutoCommitTransactions($database, $auto_commit)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->autoCommit($auto_commit);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('AutoCommitTransactions', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseCommitTransaction($database)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->commit();
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('CommitTransaction', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseRollbackTransaction($database)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->rollback();
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('RollbackTransaction', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseCreateIndex($database, $table, $name, $definition)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->createIndex($table, $name, $definition);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('CreateIndex', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseDropIndex($database, $table, $name)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->dropIndex($table, $name);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('DropIndex', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseListTableIndex($database, $table, &$index)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->listTableIndex($table);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('ListTableIndex', $result->getMessage());
- return(0);
- } else {
- $index = $result;
- return(1);
- }
- }
-
- function MetabaseGetTableIndexDefinition($database, $table, $index, &$definition)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->getTableIndexDefinition($table, $index);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('GetTableIndexDefinition', $result->getMessage());
- return(0);
- } else {
- $definition = $result;
- return(1);
- }
- }
-
- function MetabaseNow()
- {
- return(MDB_Date::mdbNow());
- }
-
- function MetabaseToday()
- {
- return(MDB_Date::mdbToday());
- }
-
- function MetabaseTime()
- {
- return(MDB_Date::mdbTime());
- }
-
- function MetabaseSetSelectedRowRange($database, $first, $limit)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->setSelectedRowRange($first, $limit);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('SetSelectedRowRange', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseEndOfResult($database, $result)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->endOfResult($result);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('EndOfResult', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseCaptureDebugOutput($database, $capture)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->captureDebugOutput($capture);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('CaptureDebugOutput', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseDebugOutput($database)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->debugOutput();
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('DebugOutput', $result->getMessage());
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseDebug($database, $message)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->debug($message);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('Debug', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseShutdownTransactions()
- {
- _shutdownTransactions();
- }
-
- function MetabaseDefaultDebugOutput($database, $message)
- {
- global $_MDB_databases;
- $result = $_MDB_databases[$database]->defaultDebugOutput($_MDB_databases[$database], $message);
- if (MDB::isError($result)) {
- $_MDB_databases[$database]->setError('DefaultDebugOutput', $result->getMessage());
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseCreateLOB(&$arguments, &$lob)
- {
- global $_MDB_databases;
- $args = $arguments;
- $args['Database'] = $_MDB_databases[$arguments['Database']];
- $result = $_MDB_databases[$arguments['Database']]->createLob($args);
- $args['Database'] = $arguments['Database']
- ;
- if (MDB::isError($result)) {
- global $lob_error;
- $lob_error = $result->getMessage();
- return(0);
- } else {
- $lob = $result;
- return(1);
- }
- }
-
- function MetabaseDestroyLOB($lob)
- {
- global $_MDB_lobs;
- $result = $_MDB_lobs[$lob]->database->destroyLob($lob);
- if (MDB::isError($result)) {
- global $lob_error;
- $lob_error = $result->getMessage();
- return(0);
- } else {
- return(1);
- }
- }
-
- function MetabaseEndOfLOB($lob)
- {
- global $_MDB_lobs;
- $result = $_MDB_lobs[$lob]->database->endOfLob($lob);
- if (MDB::isError($result)) {
- global $lob_error;
- $lob_error = $result->getMessage();
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseReadLOB($lob, &$data, $length)
- {
- global $_MDB_lobs;
- $result = $_MDB_lobs[$lob]->database->readLob($lob, $data, $length);
- if (MDB::isError($result)) {
- global $lob_error;
- $lob_error = $result->getMessage();
- return(0);
- } else {
- return($result);
- }
- }
-
- function MetabaseLOBError($lob)
- {
- global $lob_error;
- return($lob_error);
- }
-
- class metabase_manager_class
- {
- var $MDB_manager_object;
-
- var $fail_on_invalid_names = 1;
- var $error = '';
- var $warnings = array();
- var $database = 0;
- var $database_definition = array(
- 'name' => '',
- 'create' => 0,
- 'TABLES' => array()
- );
-
- function metabase_manager_class()
- {
- $this->MDB_manager_object =& new MDB_Manager;
- $this->MDB_manager_object->fail_on_invalid_names =& $this->fail_on_invalid_names;
- $this->MDB_manager_object->error =& $this->error;
- $this->MDB_manager_object->warnings =& $this->warnings;
- $this->MDB_manager_object->database_definition =& $this->database_definition;
- }
-
- function SetupDatabase(&$arguments)
- {
- _convertArguments($arguments, $dsninfo, $options);
-
- $result = $this->MDB_manager_object->connect($dsninfo, $options);
- if (MDB::isError($result)) {
- return($result->getMessage());
- }
- $this->database = $this->MDB_manager_object->database->database;
- return(1);
- }
-
- function CloseSetup()
- {
- $result = $this->MDB_manager_object->disconnect();
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function GetField(&$field, $field_name, $declaration, &$query)
- {
- if($declaration) {
- $result = $this->MDB_manager_object->database->getFieldDeclaration($field, $field_name, $declaration);
- } else {
- $result = $field_name;
- }
- if (MDB::isError($result)) {
- return(0);
- } else {
- $query = $result;
- return(1);
- }
- }
-
- function GetFieldList($fields, $declaration, &$query_fields)
- {
- if($declaration) {
- $result = $this->MDB_manager_object->database->getFieldDeclarationList($fields);
- } else {
- for(reset($fields), $i = 0;
- $field_number < count($fields);
- $i++, next($fields))
- {
- if ($i > 0) {
- $query_fields .= ', ';
- }
- $result .= key($fields);
- }
- }
- if (MDB::isError($result)) {
- return(0);
- } else {
- $query_fields = $result;
- return(1);
- }
- }
-
- function GetFields($table, &$fields)
- {
- $result = $this->MDB_manager_object->database->getFieldDeclarationList($this->database_definition['TABLES'][$table]['FIELDS']);
- if (MDB::isError($result)) {
- return(0);
- } else {
- $fields = $result;
- return(1);
- }
- }
-
- function CreateTable($table_name, $table)
- {
- $result = $this->MDB_manager_object->_createTable($table_name, $table);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function DropTable($table_name)
- {
- $result = $this->MDB_manager_object->_dropTable($table_name);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function CreateSequence($sequence_name, $sequence, $created_on_table)
- {
- $result = $this->MDB_manager_object->createSequence($sequence_name, $sequence, $created_on_table);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function DropSequence($sequence_name)
- {
- $result = $this->MDB_manager_object->_dropSequence($sequence_name);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function CreateDatabase()
- {
- $result = $this->MDB_manager_object->_createDatabase();
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function AddDefinitionChange(&$changes, $definition, $item, $change)
- {
- $result = $this->MDB_manager_object->_addDefinitionChange($changes, $definition, $item, $change);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function CompareDefinitions(&$previous_definition, &$changes)
- {
- $result = $this->MDB_manager_object->_compareDefinitions($previous_definition);
- if (MDB::isError($result)) {
- return(0);
- } else {
- $changes = $result;
- return(1);
- }
- }
-
- function AlterDatabase(&$previous_definition, &$changes)
- {
- $result = $this->MDB_manager_object->_alterDatabase($previous_definition, $changes);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function EscapeSpecialCharacters($string)
- {
- $result = $this->MDB_manager_object->_escapeSpecialCharacters($string);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return($result);
- }
- }
-
- function DumpSequence($sequence_name, $output, $eol, $dump_definition)
- {
- $result = $this->MDB_manager_object->_dumpSequence($sequence_name, $output, $eol, $dump_definition);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function DumpDatabase($arguments)
- {
- $result = $this->MDB_manager_object->dumpDatabase($arguments);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function ParseDatabaseDefinitionFile($input_file, &$database_definition, &$variables, $fail_on_invalid_names = 1)
- {
- $result = $this->MDB_manager_object->parseDatabaseDefinitionFile($input_file, $variables, $fail_on_invalid_names);
- if (MDB::isError($result)) {
- return(0);
- } else {
- $database_definition = $result;
- return(1);
- }
- }
-
- function DumpDatabaseChanges(&$changes)
- {
- $result = $this->MDB_manager_object->_debugDatabaseChanges($changes);
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
-
- function UpdateDatabase($current_schema_file, $previous_schema_file, &$arguments, &$variables)
- {
- _convertArguments($arguments, $dsninfo, $options);
-
- $result = $this->MDB_manager_object->connect($dsninfo, $options);
- if (MDB::isError($result)) {
- return($result);
- }
-
- $result = $this->MDB_manager_object->updateDatabase($current_schema_file, $previous_schema_file, $variables);
- if (MDB::isError($result)) {
- return($result->getMessage());
- }
- $this->database = $this->MDB_manager_object->database->database;
- return(1);
- }
-
- function DumpDatabaseContents($schema_file, &$setup_arguments, &$dump_arguments, &$variables)
- {
- $result = $this->MDB_manager_object->_dumpDatabaseContents($schema_file, $setup_arguments, $dump_arguments, $variables);
- if (MDB::isError($result)) {
- return(0);
- } else {
- $database_definition = $result;
- return($result);
- }
- }
-
- function GetDefinitionFromDatabase()
- {
- $result = $this->MDB_manager_object->getDefinitionFromDatabase();
- if (MDB::isError($result)) {
- return(0);
- } else {
- return(1);
- }
- }
- };
- ?>
-